Previous Book Contents Book Index Next

Inside Macintosh: 3D Graphics Programming With QuickDraw 3D /
Chapter 7 - Transform Objects


Summary of Transform Objects

C Summary

Constants

#define kQ3TransformTypeMatrix         Q3_OBJECT_TYPE('m','t','r','x')
#define kQ3TransformTypeQuaternion     Q3_OBJECT_TYPE('q','t','r','n')
#define kQ3TransformTypeRotate         Q3_OBJECT_TYPE('r','o','t','t')
#define kQ3TransformTypeRotateAboutAxis Q3_OBJECT_TYPE('r','t','a','a')
#define kQ3TransformTypeRotateAboutPoint Q3_OBJECT_TYPE('r','t','a','p')
#define kQ3TransformTypeScale          Q3_OBJECT_TYPE('s','c','a','l')
#define kQ3TransformTypeTranslate      Q3_OBJECT_TYPE('t','r','n','s')

Data Types

typedef struct TQ3RotateTransformData {
   TQ3Axis                    axis;
   float                      radians;
} TQ3RotateTransformData;
typedef struct TQ3RotateAboutPointTransformData {
   TQ3Axis                    axis;
   float                      radians;
   TQ3Point3D                 about;
} TQ3RotateAboutPointTransformData;
typedef struct TQ3RotateAboutAxisTransformData {
   TQ3Point3D                 origin;
   TQ3Vector3D                orientation;
   float                      radians;
} TQ3RotateAboutAxisTransformData;

Transform Objects Routines

Managing Transforms

TQ3ObjectType Q3Transform_GetType (
TQ3TransformObject transform);
TQ3Matrix4x4 *Q3Transform_GetMatrix (
TQ3TransformObject transform, 
TQ3Matrix4x4 *matrix);
TQ3Status Q3Transform_Submit(TQ3TransformObject transform, 
TQ3ViewObject view);

Creating and Manipulating Matrix Transforms

TQ3TransformObject Q3MatrixTransform_New (
const TQ3Matrix4x4 *matrix);
TQ3Status Q3MatrixTransform_Submit (
const TQ3Matrix4x4 *matrix, 
TQ3ViewObject view);
TQ3Status Q3MatrixTransform_Get (
TQ3TransformObject transform, 
TQ3Matrix4x4 *matrix);
TQ3Status Q3MatrixTransform_Set (
TQ3TransformObject transform, 
const TQ3Matrix4x4 *matrix);

Creating and Manipulating Rotate Transforms

TQ3TransformObject Q3RotateTransform_New (
const TQ3RotateTransformData *data);
TQ3Status Q3RotateTransform_Submit (
const TQ3RotateTransformData *data, 
TQ3ViewObject view);
TQ3Status Q3RotateTransform_GetData (
TQ3TransformObject transform, 
TQ3RotateTransformData *data);
TQ3Status Q3RotateTransform_SetData (
TQ3TransformObject transform, 
const TQ3RotateTransformData *data);
TQ3Status Q3RotateTransform_GetAxis (
TQ3TransformObject transform, 
TQ3Axis *axis);
TQ3Status Q3RotateTransform_SetAxis (
TQ3TransformObject transform, 
TQ3Axis axis);
TQ3Status Q3RotateTransform_GetAngle (
TQ3TransformObject transform, 
float *radians);
TQ3Status Q3RotateTransform_SetAngle (
TQ3TransformObject transform, 
float radians);

Creating and Manipulating Rotate-About-Point Transforms

TQ3TransformObject Q3RotateAboutPointTransform_New (
const TQ3RotateAboutPointTransformData *data);
TQ3Status Q3RotateAboutPointTransform_Submit (
const TQ3RotateAboutPointTransformData *data, 
TQ3ViewObject view);
TQ3Status Q3RotateAboutPointTransform_GetData (
TQ3TransformObject transform, 
TQ3RotateAboutPointTransformData *data);
TQ3Status Q3RotateAboutPointTransform_SetData (
TQ3TransformObject transform, 
const TQ3RotateAboutPointTransformData *data);
TQ3Status Q3RotateAboutPointTransform_GetAxis (
TQ3TransformObject transform, 
TQ3Axis *axis);
TQ3Status Q3RotateAboutPointTransform_SetAxis (
TQ3TransformObject transform, 
TQ3Axis axis);
TQ3Status Q3RotateAboutPointTransform_GetAngle (
TQ3TransformObject transform, 
float *radians);
TQ3Status Q3RotateAboutPointTransform_SetAngle (
TQ3TransformObject transform, 
float radians);
TQ3Status Q3RotateAboutPointTransform_GetAboutPoint (
TQ3TransformObject transform, 
TQ3Point3D *about);
TQ3Status Q3RotateAboutPointTransform_SetAboutPoint (
TQ3TransformObject transform, 
const TQ3Point3D *about);

Creating and Manipulating Rotate-About-Axis Transforms

TQ3TransformObject Q3RotateAboutAxisTransform_New (
const TQ3RotateAboutAxisTransformData *data);
TQ3Status Q3RotateAboutAxisTransform_Submit (
const TQ3RotateAboutAxisTransformData *data, 
TQ3ViewObject view);
TQ3Status Q3RotateAboutAxisTransform_GetData (
TQ3TransformObject transform, 
TQ3RotateAboutAxisTransformData *data);
TQ3Status Q3RotateAboutAxisTransform_SetData (
TQ3TransformObject transform, 
const TQ3RotateAboutAxisTransformData *data);
TQ3Status Q3RotateAboutAxisTransform_GetOrigin (
TQ3TransformObject transform, 
TQ3Point3D *origin);
TQ3Status Q3RotateAboutAxisTransform_SetOrigin (
TQ3TransformObject transform, 
const TQ3Point3D *origin);
TQ3Status Q3RotateAboutAxisTransform_GetOrientation (
TQ3TransformObject transform, 
TQ3Vector3D *axis);
TQ3Status Q3RotateAboutAxisTransform_SetOrientation (
TQ3TransformObject transform, 
const TQ3Vector3D *axis);
TQ3Status Q3RotateAboutAxisTransform_GetAngle (
TQ3TransformObject transform, 
float *radians);
TQ3Status Q3RotateAboutAxisTransform_SetAngle (
TQ3TransformObject transform, 
float radians);

Creating and Manipulating Scale Transforms

TQ3TransformObject Q3ScaleTransform_New (
const TQ3Vector3D *scale);
TQ3Status Q3ScaleTransform_Submit (
TQ3Vector3D *scale, TQ3ViewObject view);
TQ3Status Q3ScaleTransform_Get(TQ3TransformObject transform, 
TQ3Vector3D *scale);
TQ3Status Q3ScaleTransform_Set(TQ3TransformObject transform, 
const TQ3Vector3D *scale);

Creating and Manipulating Translate Transforms

TQ3TransformObject Q3TranslateTransform_New (
const TQ3Vector3D *translate);
TQ3Status Q3TranslateTransform_Submit (
const TQ3Vector3D *translate, 
TQ3ViewObject view);
TQ3Status Q3TranslateTransform_Get (
TQ3TransformObject transform, 
TQ3Vector3D *translate);
TQ3Status Q3TranslateTransform_Set (
TQ3TransformObject transform, 
const TQ3Vector3D *translate);

Creating and Manipulating Quaternion Transforms

TQ3TransformObject Q3QuaternionTransform_New (
const TQ3Quaternion *quaternion);
TQ3Status Q3QuaternionTransform_Submit (
const TQ3Quaternion *quaternion, 
TQ3ViewObject view);
TQ3Status Q3QuaternionTransform_Get (
TQ3TransformObject transform, 
TQ3Quaternion *quaternion);
TQ3Status Q3QuaternionTransform_Set (
TQ3TransformObject transform, 
const TQ3Quaternion *quaternion);

Errors
kQ3ErrorScaleOfZero 


Previous Book Contents Book Index Next

© Apple Computer, Inc.
11 JUL 1996